<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图书列表展示</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">

    <link rel="stylesheet" href="css/list.css">
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
    <script src="js/jq-paginator.js"></script>

</head>

<body>
    <div class="bookContainer">
        <h2>图书列表展示</h2>
        <div class="navbar-justify-between">
            <div>
                <button class="btn btn-outline-info" type="button" onclick="location.href='book_add.html'">添加图书</button>
                <button class="btn btn-outline-info" type="button" onclick="batchDelete()">批量删除</button>
            </div>
        </div>

        <table>
            <thead>
                <tr>
                    <td>选择</td>
                    <td class="width100">图书ID</td>
                    <td>书名</td>
                    <td>作者</td>
                    <td>数量</td>
                    <td>定价</td>
                    <td>出版社</td>
                    <td>状态</td>
                    <td class="width200">操作</td>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><input type="checkbox" name="selectBook" value="1" id="selectBook" class="book-select"></td>
                    <td>1</td>
                    <td>大秦帝国第一册</td>
                    <td>我是作者</td>
                    <td>23</td>
                    <td>33.00</td>
                    <td>北京出版社</td>
                    <td>可借阅</td>
                    <td>
                        <div class="op">
                            <a href="book_update.html?bookId=1">修改</a>
                            <a href="javascript:void(0)" onclick="deleteBook(1)">删除</a>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="selectBook" value="1" id="selectBook" class="book-select"></td>
                    <td>2</td>
                    <td>大秦帝国第二册</td>
                    <td>我是作者</td>
                    <td>23</td>
                    <td>33.00</td>
                    <td>北京出版社</td>
                    <td>可借阅</td>
                    <td>
                        <div class="op">
                            <a href="book_update.html?bookId=2">修改</a>
                            <a href="javascript:void(0)" onclick="deleteBook(2)">删除</a>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="selectBook" value="1" id="selectBook" class="book-select"></td>
                    <td>3</td>
                    <td>大秦帝国第三册</td>
                    <td>我是作者</td>
                    <td>23</td>
                    <td>33.00</td>
                    <td>北京出版社</td>
                    <td>可借阅</td>
                    <td>
                        <div class="op">
                            <a href="book_update.html?bookId=3">修改</a>
                            <a href="javascript:void(0)" onclick="deleteBook(3)">删除</a>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="selectBook" value="1" id="selectBook" class="book-select"></td>
                    <td>4</td>
                    <td>大秦帝国第四册</td>
                    <td>我是作者</td>
                    <td>23</td>
                    <td>33.00</td>
                    <td>北京出版社</td>
                    <td>可借阅</td>
                    <td>
                        <div class="op">
                            <a href="book_update.html?bookId=4">修改</a>
                            <a href="javascript:void(0)" onclick="deleteBook(4)">删除</a>
                        </div>
                    </td>
                </tr>
            </tbody>
        </table>

        <div class="demo">
            <ul id="pageContainer" class="pagination justify-content-center"></ul>
        </div>
        <script>

            // 页面加载时调用获取图书列表函数
            getBookList();

            /**
             * 获取图书列表的完整实现
             * 包含错误处理、数据渲染和分页配置
             */
            function getBookList() {
                $.ajax({
                    type: "get",
                    url: "/book/getListByPage" + location.search,  // 拼接当前页面的查询参数
                    success: function (result) {
                        console.log(result);  // 调试输出

                        // 真实前端代码需要分的更细一点, 此处不做判断
                        // 简单判断：如果结果为空或数据为空，跳转到登录页
                        if (result == null || result.data == null) {
                            location.href = "login.html";  // 页面跳转
                            return;  // 退出函数
                        }

                        var finalHtml = "";  // 初始化HTML字符串
                        var data = result.data;  // 提取数据部分

                        // 遍历图书记录，生成表格行
                        for (var book of data.records) {
                            finalHtml += '<tr>';
                            finalHtml += '<td><input type="checkbox" name="selectBook" value="' + book.id + '" id="selectBook" class="book-select"></td>';
                            finalHtml += '<td>' + book.id + '</td>';
                            finalHtml += '<td>' + book.bookName + '</td>';
                            finalHtml += '<td>' + book.author + '</td>';
                            finalHtml += '<td>' + book.count + '</td>';
                            finalHtml += '<td>' + book.price + '</td>';
                            finalHtml += '<td>' + book.publish + '</td>';
                            finalHtml += '<td>' + book.statusCN + '</td>';
                            finalHtml += '<td><div class="op">';
                            finalHtml += '<a href="book_update.html?bookId=' + book.id + '">修改</a>';
                            finalHtml += '<a href="javascript:void(0)" onclick="deleteBook(' + book.id + ')">删除</a>';
                            finalHtml += '</div></td>';
                            finalHtml += "</tr>";
                        }
                        $("tbody").html(finalHtml);  // 将生成的HTML插入表格

                        // 配置分页组件
                        $("#pageContainer").jqPaginator({
                            totalCounts: data.total, //总记录数
                            pageSize: 10, //每页的个数
                            visiblePages: 5, //可视页数
                            currentPage: data.pageRequest.currentPage, //当前页码
                            first: '<li class="page-item"><a class="page-link">首页</a></li>',
                            prev: '<li class="page-item"><a class="page-link" href="javascript:void(0);">上一页</a></li>',
                            next: '<li class="page-item"><a class="page-link" href="javascript:void(0);">下一页</a></li>',
                            last: '<li class="page-item"><a class="page-link" href="javascript:void(0);">最后一页</a></li>',
                            page: '<li class="page-item"><a class="page-link" href="javascript:void(0);">{{page}}</a></li>',
                            //页面初始化和页码点击时都会执行
                            onPageChange: function (page, type) {
                                if (type != 'init') {
                                    location.href = "book_list.html?currentPage=" + page;  // 跳转到指定页码
                                }
                            }
                        });
                    }
                });
            }

            function deleteBook(id) {
                var isDelete = confirm("确认删除?");  // 弹出确认对话框
                if (isDelete) {
                    //删除图书
                    $.ajax({
                        type: "post",  // 使用POST方法
                        url: "/book/deleteBook?bookId=" + id,  // 请求URL，携带图书ID参数
                        success: function (result) {
                            if (result == "") {  // 判断返回结果是否为空字符串（成功）
                                //删除成功
                                location.href = "book_list.html";  // 跳转到图书列表页面
                            } else {
                                alert(result);  // 弹出错误信息
                            }
                        },
                        error: function (error) {
                            if (error.status == 401) {  // 判断是否未授权
                                location.href = "login.html";  // 跳转到登录页面
                            } else {
                                alert(error.responseText)  // 弹出错误响应文本
                            }
                        }
                    });
                }
            }


            /**
             * 批量删除图书
             */
            function batchDelete() {
                var isDelete = confirm("确认批量删除?");  // 弹出确认对话框
                if (isDelete) {
                    // 获取所有选中的复选框的值
                    var ids = [];  // 创建空数组存储ID
                    $("input:checkbox[name='selectBook']:checked").each(function () {
                        ids.push($(this).val());  // 遍历每个选中的复选框，将值添加到数组
                    });

                    if (ids.length === 0) {  // 检查是否选择了图书
                        alert("请选择要删除的图书");  // 提示选择图书
                        return;  // 直接返回
                    }

                    console.log("要删除的IDs:", ids);  // 控制台输出要删除的ID

                    // 发送批量删除请求
                    $.ajax({
                        type: "post",  // 使用POST方法
                        url: "/book/batchDeleteBook",  // 请求URL
                        traditional: true,  // 重要：这确保数组参数正确传递
                        data: {
                            ids: ids  // 发送ID数组
                        },
                        success: function (result) {
                            if (result == "") {  // 判断是否成功
                                alert("删除成功");  // 弹出成功提示
                                // 重新刷新页面
                                location.href = "book_list.html";  // 刷新页面
                            } else {
                                alert(result);  // 弹出错误信息
                            }
                        },
                        error: function (error) {
                            console.log(error);  // 控制台输出错误
                            alert("删除失败");  // 弹出失败提示
                        }
                    });
                }
            }

        </script>
    </div>
</body>

</html>